Benchmarking is a process for assessing the relative performance of a computer system by running a number of tests against it. Benchmarking is usually associated with assessing performance characteristics of computer hardware, for example, a CPU, and computer software. Software benchmarks are, for example, run against compilers or database management systems. Benchmarks provide a method of comparing the performance of various subsystems across different chip/system architectures. Browser benchmarking is a process for measuring a performance of a client-side application, e.g., a web browser. The browser performance in processing an application can depend on various factors, including server-side performance of the application and client-side performance of the application. The server-side performance is performance of a server-side portion of the application executing at an application server computing device (“app server”) and the client-side performance is performance of a client-side portion of the application executing in a client-side application, e.g., a web browser, at a client computing device (“client”).
Some software benchmarking systems focus on the server-side performance of the application and benchmark the server-side performance. Not many software benchmarking systems focus on the browser performance. The software benchmarking systems that do focus on the browser benchmarking are inefficient. For example, the prior browser benchmarking systems do not isolate the effect of the server-side performance on the client-side performance. That is, the browser performance metrics that are determined are dependent on the server-side performance of the application. If the server-side performance changes, the browser performance metrics also change. Such measurements are therefore, not accurate. Further, prior browser benchmarking systems do not use real-world data to benchmark the browser performance. Such benchmarking techniques may not provide accurate performance results, and often, the performance of the browser in handling the real-world data in a production environment varies from, e.g., is inferior to, the performance determined by the benchmarking techniques.
Even if some of the prior browser benchmarking systems use real world data, some web pages are so dynamic that the content of the web page changes before a test case is repeated, and therefore, the metrics so generated do not often reflect accurate results. The prior browser benchmarking systems lack an efficient way to control data changes in the application during benchmarking process.